package com.by.common.ex;

import java.util.Map;

/**
 * @author Ye QS
 * @version 0.1
 * @className ValidateException
 * @description
 * @date 2024/9/5 16:59
 * @since jdk11
 */
/**
 * 自定义异常类，用于封装验证过程中出现的错误信息。
 * 当在业务流程中检测到输入数据不符合预期时抛出此异常，
 * 并携带详细的错误描述以便于前端或其他调用方处理这些错误。
 */
public class ValidateException extends RuntimeException {

    /**
     * 存储所有验证失败字段及其对应的原因说明。
     */
    private Map<String, String> errors;

    /**
     * 构造函数初始化验证异常，并设置默认异常消息以及具体的错误集合。
     *
     * @param errors 包含每个字段名称与相应错误信息映射关系的Map对象。
     */
    public ValidateException(Map errors) {
        super("验证异常");
        this.errors = errors;
    }

    /**
     * 获取包含所有验证失败字段及其原因的Map。
     *
     * @return 错误信息集合。
     */
    public Map<String, String> getErrors() {
        return errors;
    }

    /**
     * 设置新的错误信息集合。
     *
     * @param errors 新的包含错误字段及其原因的Map。
     */
    public void setErrors(Map errors) {
        this.errors = errors;
    }
}